/*
 * @Author: Tendo 
 * @Date: 2021-10-02 21:07:20 
 * @param {number[]} nums
 * @param {number} k
 * @return {number[]}
 */
/**

 */
var topKFrequent = function (nums, k) {
    // 遍历数组，将所有结果存储到 map 中
    let map = new Map()
    for (let item of nums) {
        if (map.has(item)) {
            let count = map.get(item) + 1
            map.set(item, count)
        } else {
            map.set(item, 1)
        }
    }
    // 把数据存入一个对象数组
    let array = []
    for (let [key, value] of map) {
        array.push({
            key,
            value
        })
    }
    // 对对象数组根据 value 从大到小排序
    array.sort((a, b) => {
        return b.value - a.value
    })
    // 截取前k个，返回其key值组成的数组
    return array.slice(0, k).map(item => {
        return item.key
    })
};

